namespace SPI.AgentServer.Services.Tools;

public interface IQueryTool
{
    string Name { get; }
    string Description { get; }
    Task<ToolResult> ExecuteAsync(Dictionary<string, object> parameters, CancellationToken cancellationToken = default);
    bool ValidateParameters(Dictionary<string, object> parameters, out List<string> errors);
}

public class ToolResult
{
    public bool Success { get; set; }
    public object? Data { get; set; }
    public string? Message { get; set; }
    public List<string> Errors { get; set; } = new();
    public Dictionary<string, object> Metadata { get; set; } = new();
}
